﻿namespace MLSharp.Utilities
{
	/// <summary>
	/// A generic container for holding two objects.
	/// </summary>
	public class Pair<TLeft,TRight>
	{
		#region Public Properties

		/// <summary>
		/// The first value in the pair.
		/// </summary>
		public TLeft Left { get; set; }

		/// <summary>
		/// The second value in the pair.
		/// </summary>
		public TRight Right { get; set; }

		#endregion

		#region Public Constructors

		/// <summary>
		/// Creates an empty pair.
		/// </summary>
		public Pair()
		{
			return;
		}

		/// <summary>
		/// Creates a new pair with the specified values.
		/// </summary>
		/// <param name="left"></param>
		/// <param name="right"></param>
		public Pair(TLeft left, TRight right)
		{
			Left = left;
			Right = right;
		}

		#endregion
	}
}
